package com.example.fileserver_API.Interfaces.Service;

import com.example.fileserver_API.Entity.VO.APIResult;
import com.example.fileserver_API.Interfaces.IService.IAnalysisSSService;
import com.example.fileserver_API.utils.APIResultUtils;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

@Service
public class AnalysisSSService implements IAnalysisSSService {
    /**
     * 解析MD文件返回html格式
     * @param file 文件
     * @return APIResult
     */
    @Override
    public APIResult UploadMDFile(MultipartFile file) {
        try {
            // 检查上传的文件是否为空
            if (file.isEmpty()) {
                return APIResultUtils.error("请先选择要上传的文件!");
            }
            // 将文件内容读取为字符串
            String content = new String(file.getBytes());
            if(content.length()>65000)
                return APIResultUtils.error("温馨提示，文件内要小于65000个字符！");
            // 使用Flexmark解析Markdown内容并转换为HTML
            Parser parser = Parser.builder().build();
            HtmlRenderer renderer = HtmlRenderer.builder().build();
            String htmlContent = renderer.render(parser.parse(content));
            // 你可以将HTML内容保存到数据库或进行进一步处理
            return APIResultUtils.success("",htmlContent);
        } catch (Exception e) {
            e.printStackTrace();
            return APIResultUtils.error("上传和解析文件时发生错误!");
        }
    }
}
